:root {
    --cui-pin-color-border: #d9d9d9;
    --cui-pin-color-focus-border: #686de0;
    --cui-pin-color-focus-shadow: rgba(104,109,224,.5);
    --cui-pin-color-text: rgba(28,31,35,.8);
}
body[theme-mod='dark'] {
    --cui-pin-color-border: rgba(255,255,255,.25);
    --cui-pin-color-text: rgba(249,249,249,.8);
}
.cm-pin {
    display: grid;
    grid-auto-columns: max-content;
    grid-auto-flow: column;
    justify-content: center;
}

.cm-pin-field {
    border: 1px solid var(--cui-pin-color-border);
    border-right: none;
    font-size: 2rem;
    height: 4rem;
    outline: none;
    background-color: transparent;
    color: var(--cui-pin-color-text);
    text-align: center;
    transition-duration: 0.25s;
    transition-property: color, border, box-shadow, -webkit-transform;
    transition-property: color, border, box-shadow, transform;
    transition-property: color, border, box-shadow, transform, -webkit-transform;
    width: 4rem;
}

.cm-pin-field:first-of-type {
    border-radius: 0.5rem 0 0 0.5rem;
}

.cm-pin-field:last-of-type {
    border-radius: 0 0.5rem 0.5rem 0;
    border-right: 1px solid var(--cui-pin-color-border);;
}

.cm-pin-field:focus {
    border-color: var(--cui-pin-color-focus-border);
    box-shadow: 0 0 0.25rem var(--cui-pin-color-focus-shadow);
}
.cm-pin-field:focus+.cm-pin-field {
    border-left-color: var(--cui-pin-color-focus-border);
}